#include <stdio.h>
#include <stdlib.h>
#include <lua.h>  
#include <lualib.h>  
#include <lauxlib.h> 


int main()
{
	lua_State *pLua;

	pLua = luaL_newstate();/* 创建Lua接口指针 */
	if(pLua == NULL)
		return 0;
	luaL_openlibs(pLua); /* 加载Lua库 */


	if(luaL_loadfile(pLua, "/root/aircontrol.lua") != 0) /* 读取lua源文件，仅载入内存而未编译 */
		return 0;
	lua_pcall(pLua, 0, LUA_MULTRET, 0); /* 执行匿名函数，以编译源代码成二进制码，*/
	/* 并将全局变量压栈（函数名也是变量） */
	lua_getglobal(pLua, "handle_status_value"); /* 取全局变量，这里是待调用函数名 */

	lua_pushnumber(pLua, -1);  /* 参数压栈 */
	/*  执行函数 */ 
	if(lua_pcall(pLua, 1, 1, 0) != 0) {
		printf("\nError running function 'func1' : %s", lua_tostring(pLua, -1));
		return 0;
	}
	lua_tonumber(pLua, -1);  /* 取栈顶值 */
	lua_pop(pLua, 1);  /* 栈顶弹出一个元素，即清除返回值占用的栈空间 */

	lua_close(pLua);
	return 0;
}
